home *** CD-ROM | disk | FTP | other *** search
/ Stone Design / Stone Design.iso / Stone_Friends / Wave / WavesWorld / Source / IBPalettes / WW3DKit / WW3DShape.h < prev    next >
Encoding:
Text File  |  1995-03-22  |  2.3 KB  |  110 lines

  1. // copyright 1993 Michael B. Johnson; some portions copyright 1994, MIT
  2. // see COPYRIGHT for reuse legalities
  3. //
  4.  
  5. #import <appkit/appkit.h>
  6. #import <3Dkit/N3DShape.h>
  7. #import "Protocol_WWRenderable.h"
  8.  
  9. @interface WW3DShape:N3DShape < WWRenderable >
  10. {
  11.   List      *ribCommandList;
  12.   List      *ribCommandListRecording;
  13.   id        childList;
  14.   id        siblingList;
  15.   unsigned 
  16.     short   pathSeparator;
  17.   char      *shadingGroup;
  18.   char      *materialGroup;
  19.   char      *geometryGroup;
  20.  
  21.   RtFloat   originTesselationVector[2];
  22.  
  23.   RtMatrix  initialTransform;
  24.  
  25.   BOOL      dirtyBases;
  26.   RtBasis   uBasis;
  27.   RtToken   uBasisToken;
  28.   RtInt     uStep;
  29.   RtBasis   vBasis;
  30.   RtToken   vBasisToken;
  31.   RtInt     vStep;
  32.  
  33.   RtColor   selectedColor;
  34.   RtColor   unselectedColor;
  35.   RtColor   xColor;
  36.   RtFloat   xExtent;
  37.   RtColor   yColor;
  38.   RtFloat   yExtent;
  39.   RtColor   zColor;
  40.   RtFloat   zExtent;
  41.  
  42.   BOOL      selected;
  43.   BOOL      drawOrigin;
  44.   BOOL      dirtyBoundingBox;
  45.   RtFloat    bbIntervalStart, bbIntervalEnd;
  46.  
  47.   RtColor   opacity;
  48.  
  49.   id        interp;
  50.   id        sceneClock;
  51.   
  52.   // support for direct interaction...
  53.   BOOL hasEveCmd;
  54. }
  55.  
  56. - initWithInterp:newInterp andSceneClock:newSceneClock;
  57.  
  58. - performUpdateForInteraction:(WW3DCamera *)camera;
  59.  
  60. - tclInterp;
  61. - sceneClock;
  62.  
  63. - setShader_:newShader;
  64. - removeSurfaceShader:sender;
  65. - removeDisplacementShader:sender;
  66.  
  67. - appendRIBCommand:newRIBCommand;
  68. - ribCommands;
  69.  
  70. - setShadingGroup:(const char *)newGroup;
  71. - setMaterialGroup:(const char *)newGroup;
  72. - setGeometryGroup:(const char *)newGroup;
  73.  
  74. - updateBases;
  75.  
  76. - setBoundingBoxDirty;
  77.  
  78. - logTransformWithMsg:(const char *)aMsg;
  79.  
  80. - getInitialTransformMatrix:(RtMatrix)aMatrix;
  81. - (RtBasis *)uBasis;  
  82. - (RtToken)uBasisToken;  
  83. - (RtInt)uStep; 
  84. - (RtBasis *)vBasis;
  85. - (RtToken)vBasisToken;
  86. - (RtInt)vStep; 
  87.  
  88. // methods for getting info about the shape's children
  89. - parent;
  90. - addChild:newChild;
  91. - children;
  92. - siblings;
  93. - (unsigned short)pathSeparator;
  94. - setPathSeparator:(unsigned short)newSeparator;
  95. - getChildGivenPath:(const char *)path;
  96. - (char *)getPath;
  97.  
  98. - setSelected:(BOOL)selectionFlag andDrawOrigin:(BOOL)drawOriginFlag;
  99. - setSelectedColor:(RtColor)newColor;
  100. - setDrawOrigin:(BOOL)drawOriginFlag;
  101. - (RtColor *)selectedColor;
  102. - setUnselectedColor:(RtColor)newColor;
  103. - (RtColor *)unselectedColor;
  104.  
  105. // archiving methods
  106. - write:(NXTypedStream *)stream;
  107. - read:(NXTypedStream *)stream;
  108.  
  109. @end
  110.